// via blob object
/*
URL.createObjectURL(blob)
    如果介意内存，我们需要撤销（revoke）它们
    直接访问 Blob ，无需“编码/解码”
*/
let link = document.createElement('a');
link.download = 'hello.txt';
let blob = new Blob(['Hello, world!'], { type: 'text/plain' });
link.href = URL.createObjectURL(blob); // create url: blob:origin/uuid
link.click();
URL.revokeObjectURL(link.href); // remove reference of url


// via base64
/*
Blob 转换为 data url
    无需撤销（revoke）任何操作。
    对大的 Blob 进行编码时，性能和内存会有损耗。
*/

// let link = document.createElement('a');
// link.download = 'hello.txt';
// let blob = new Blob(['Hello, world!'], { type: 'text/plain' });
// let reader = new FileReader();
// reader.readAsDataURL(blob); // 将 Blob 转换为 base64 并调用 onload
// reader.onload = function () {
//     link.href = reader.result; // data url
//     link.click();
// };



